package com.jwsoft.manager.common.vo.eduEnrollmenBrochure;

import com.alibaba.fastjson.annotation.JSONField;
import com.bifang.assistant.common.vo.BasePageVO;
import com.bifang.module.system.common.vo.appArticleKeyword.AppArticleKeywordVO;
import com.bifang.module.system.common.vo.appArticleLabel.AppArticleLabelVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author wangt
 * @date 2023-02-16
 * @description 招生方案
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(title = "招生方案", description = "招生方案")
public class EnrollmenVO extends BasePageVO {
    @Schema(title = "文章id")
    private Long articleId;

    @Schema(title = "文章标题")
    private String title;

    @Schema(title = "文章标题简称")
    private String shortTitle;

    @Schema(title = "文章内容")
    private String articleContent;

    @Schema(title = "文章内容文件url")
    private String fileUrl;

    @Schema(title = "文件类型 image 图片 pdf video视频")
    private String fileType;

    @Schema(title = "文件类型 image 图片 pdf video视频")
    private String fileTypeName;

    @Schema(title = "内容类型：file 文件 richText 文本 richText-file 富文本和文件")
    private String contentType;

    @Schema(title = "内容类型：file 文件 richText 文本 richText-file 富文本和文件")
    private String contentTypeName;

    @Schema(title = "是否根据标签显示 0 否 1 是")
    private String labelFlag;

    @Schema(title = "是否根据标签显示 0 否 1 是")
    private String labelFlagName;

    @Schema(title = "链接地址")
    private String linkUrl;

    @Schema(title = "链接类型：router 内部路由 h5 第三方H5 weixin 第三方微信小程序")
    private String linkType;

    @Schema(title = "链接类型：router 内部路由 h5 第三方H5 weixin 第三方微信小程序")
    private String linkTypeName;

    @Schema(title = "内部路由路径")
    private String linkPath;

    @Schema(title = "内部路由名")
    private String linkName;

    @Schema(title = "链接参数：json")
    private String linkParams;

    @Schema(title = "描述")
    private String remarks;

    @Schema(title = "发布时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date publishTime;

    @Schema(title = "发布时间中文")
    private String publishTimeText;

    @Schema(title = "下架时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date offTime;

    @Schema(title = "发布主体（人或单位）")
    private String publisher;

    @Schema(name = "articleStatus", title = "状态 draft 草稿 auth 审核中 finish 准备完成 on 发布中 off 下架")
    private String articleStatus;

    @Schema(title = "状态 中文")
    private String articleStatusName;

    @Schema(title = "审核状态 0 未审核 1 审核通过 2 审核不通过")
    private String authStatus;

    @Schema(title = "审核状态 0 未审核 1 审核通过 2 审核不通过")
    private String authStatusName;

    @Schema(title = "审核说明")
    private String authRemarks;

    @Schema(title = "审核人")
    private String authUserId;

    @Schema(title = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date authTime;

    @Schema(title = "列表标题颜色")
    private String color;

    @Schema(title = "背景颜色")
    private String bgColor;

    @Schema(title = "是否置顶")
    private String topFlag;

    @Schema(title = "文章列表显示小图标")
    private String imgUrl;

    @Schema(title = "文章列表显示小图标")
    private List<String> imgUrlList;

    @Schema(title = "文章列表显示大图标")
    private String imgBigUrl;

    @Schema(title = "文章列表显示大图标")
    private List<String> imgBigUrlList;

    @Schema(title = "行政区")
    private String areaCode;

    @Schema(title = "行政区名称")
    private String areaName;

    @Schema(title = "文章类型：notice 公告 ")
    private String articleType;

    @Schema(title = "文章类型中文 ")
    private String articleTypeName;

    @Schema(title = "评论次数")
    private Integer commentCount;

    @Schema(title = "查看次数")
    private Integer showCount;

    @Schema(title = "点赞次数")
    private Integer likeCount;

    @Schema(title = "收藏次数")
    private Integer collectCount;

    @Schema(title = "是否点赞")
    private Boolean likeFlag;

    @Schema(title = "是否收藏")
    private Boolean collectFlag;

    @Schema(title = "举报次数")
    private Integer reportCount;

    @Schema(title = "列表展示类型：0 无图片 1 一张大图 2 左边一张小图 3标题下发多张图 最多3张")
    private String showType;

    @Schema(title = "列表展示类型：0 无图片 1 一张大图 2 左边一张小图 3标题下发多张图 最多3张")
    private String showTypeName;

    @Schema(title = "显示位置：对应用户类型大类")
    private String showPosition;

    @Schema(title = "显示位置：对应用户类型大类")
    private String showPositionName;

    @Schema(title = "所属组织")
    private String orgId;
    @Schema(title = "所属学校名称")
    private String schoolName;
    @Schema(title = "所属学校名称简称")
    private String shortName;
    @Schema(title = "所属组织")
    private String orgName;

    @Schema(title = "应用id")
    private String clientId;

    @Schema(title = "应用名称")
    private String appName;

    @Schema(title = "关键字名称")
    private List<String> keyList;

    @Schema(title = "关键字列表")
    private List<AppArticleKeywordVO> keywordList;

    @Schema(title = "标签名称列表")
    private List<String> labelTitleList;

    @Schema(title = "标签列表")
    private List<AppArticleLabelVO> labelList;

    @Schema(title = "关键字")
    private String text;

    @Schema(title = "标签列表")
    private List<String> labelCodeS;

    @Schema(title = "学段类别")
    private String schoolCategory;

    @Schema(title = "地图区域")
    private String mapRegion;

    @Schema(title = "经度")
    private BigDecimal longitude;

    @Schema(title = "纬度")
    private BigDecimal latitude;

    @Schema(title = "招生简章id")
    private String enrollmenBrochureId;

    @Schema(title = "招生计划id")
    private String enrollmentPlanId;

    @Schema(title = "学校")
    private String schoolId;

    @Schema(title = "招生班级数")
    private Integer admissionClassNumber;

    @Schema(title = "招生人数")
    private Integer enrolment;

    @Schema(title = "招生条件")
    private String admissionsCategory;

    @Schema(title = "年份")
    private Integer year;

    @Schema(title = "是否已经结束报名 1.是 0.否")
    private String endRegistration;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @Schema(title ="有效开始时间")
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @Schema(title ="有效结束时间")
    private Date endTime;

    @Schema(title ="全学段招生状态：未开放 招生中 已结束")
    private String enrollStatus;

    @Schema(title = "学区示意图")
    private String brochureContent;

    @Schema(title = "特殊通道表单ids")
    private String specialIds;
    @Schema(name = "houseEndTimeNo", title = "不限房产截止时间 1 不限 0 限制")
    private String houseEndTimeNo;
    @Schema(name = "houseEndTime", title = "正学区房产截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date houseEndTime;
    @Schema(name = "houseEndTimeFw", title = "服务区房产截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date houseEndTimeFw;
    @Schema(name = "authOrderByNo", title = "不限审核和录取类别顺序 1 不限 0 限制")
    private String authOrderByNo;

    @Schema(name = "householdEndTimeNo", title = "不限户籍截止时间 1 不限 0 限制")
    private String householdEndTimeNo;
    @Schema(name = "householdEndTime", title = "正学区户籍截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date householdEndTime;
    @Schema(name = "householdEndTimeFw", title = "服务区户籍截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date householdEndTimeFw;
    @Schema(name = "serviceFlag", title = "是否开通服务区")
    private String serviceFlag;
    @Schema(name = "phone", title = "联系电话")
    private String phone;
    @Schema(name = "contacts", title = "联系人")
    private String contacts;
    @Schema(name = "enrollArea", title = "面向招生的区域")
    private String enrollArea;
    private List<String> enrollAreaList;
    @Schema(name = "allAreaFlag", title = "是否面向全市招生")
    private String allAreaFlag;

    @Schema(name = "enrollAreaConfigList", title = "根据招生类别区域控制")
    private List<OtherAreaConfigNameVO> enrollAreaConfigList;
}
